layui.define(['table', 'form','laypage','laydate','layer'], function(exports){
    var $ = layui.$
        , table = layui.table
        , form = layui.form
        , laydate=layui.laydate
        , laypage = layui.laypage
        , layer = layui.layer;

    //路径
    var curWwwPath=window.document.location.href;
    var pathName=window.document.location.pathname;
    var pos=curWwwPath.indexOf(pathName);
    var localhostPaht=curWwwPath.substring(0,pos);
    var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);

    var limitcount =15;
    var curnum = 1;
    table.render({
        elem: '#basic'
        , url: localhostPaht + projectName + "/rest/system/getMongoSearchStructure?key=1"
        , height: 'full-188'
        , page: false
        , limit: limitcount
        , title:"基本信息列表"
        , text: {
            none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
        }
        , toolbar: '#basicDemo'
        , defaultToolbar: ['filter', 'print']
        // ,skin: 'line' //表格风格
        ,loading:true
        , cols: [[
            // {type: 'checkbox'}
            {field: 'oderNumber', title: 'ID', width: 70, sort: true,fixed:'left'}
            , {field: 'displayName', title: '属性名称', sort: true}
            , {field: 'name', title: '属性代码', sort: true}
            , {field: 'type', title: '属性类型', sort: true}
            , {field: 'dataType', title: '数据类型', sort: true}
            , {field: 'state', title: '是否显示',templet: '#statebasic', sort: true}
            , {field: 'isValidate', title: '是否验证',templet: '#isValidatebasic', sort: true}
            , {field: 'head', title: '表格属性',templet: '#headbasic', sort: true}
            , {field: 'width', title: '占用宽度', sort: true}
            , {field: 'createTime', title: '创建时间', sort: true}
            , {title: '操作', toolbar: '#basictable',align: "center",width: 200}
        ]]
        , done: function (res, curr, count) {
            if(res.errorMsg==null){

            }else {
                layer.msg(res.errorMsg);
            }
            laypage.render({
                elem: 'basiclaypage'
                ,first: '首页'
                ,last: '尾页'
                ,groups:5
                , count: count
                , curr: curnum
                , limit: limitcount
                , layout: ['prev', 'page', 'next', 'skip', 'count']
                , jump: function (obj, first) {
                    if (!first) {
                        curnum = obj.curr;
                        limitcount = obj.limit;
                        table.reload('basic', { //表格的id
                            where: {
                                page: curnum,
                                limit:limitcount
                            }
                        })
                    }
                }
            })
        }
    });

    //监听工具条
    table.on('tool(basicList)', function(obj){  //表格的lay-filter="userlists"
        var data = obj.data; //获得当前行所有数据
        var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的DOM对象
        JSON.stringify(data)
        if(obj.event === 'update'){
            updatebasic(data)
        }else if(obj.event === 'del'){
            del(data,obj)
        }
    });

   function  updatebasic(data){
       var clocess="1";
       var index = layer.open({
           title : "修改",
           type: 2,
           content:localhostPaht + projectName+'/rest/getRoute?type=system&url=attribute_update',
           //是否显示右上角关闭图标，默认为1，显示
           area: ['90%', '91%'],
           maxmin: true,
           //是否显示右上角关闭图标，默认为1，显示
           anim:4,
           shade:0.6,
           skin: 'layui-layer-molv',
           resize:true,
           success: function(layero, index){  //当你需要在层创建完毕时即执行一些语句，可以通过该回调 想相当于吧值转到子界面
               // var body = layer.getChildFrame('body',index);//建立父子联系  //当你试图在当前页获取iframe页的DOM元素时，你可以用此方法。
               // body.find("#id").val(data.id);

               var iframe = window['layui-layer-iframe'+index];
               //调用子页面的全局函数
               iframe.child(data.id)
           },cancel: function(index, layero) {
               layer.close(index)
               clocess="2"
               return false;
           },
           end: function () {
               if(clocess=="2"){

               }else {
                   table.reload('basic')
               }
               return false;
           }
       });

       // $('.layui-layer-setwin .layui-layer-max').css("display","none")
       // $('.layui-layer-setwin .layui-layer-min').css("display","none")
   }

    table.render({
        elem: '#detailed'
        , url: localhostPaht + projectName + "/rest/system/getMongoSearchStructure?key=2"
        , height: 'full-188'
        , page: false
        , limit: limitcount
        , title:"详细信息列表"
        , text: {
            none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
        }
        , toolbar: '#detailedDemo'
        , defaultToolbar:  ['filter', 'print']
        // ,skin: 'line' //表格风格
        , cols: [[
            // {type: 'checkbox'}
            {field: 'oderNumber', title: 'ID', width: 70, sort: true,fixed:'left'}
            , {field: 'displayName', title: '属性名称', sort: true}
            , {field: 'name', title: '属性代码', sort: true}
            , {field: 'type', title: '属性类型', sort: true}
            , {field: 'dataType', title: '数据类型', sort: true}
            , {field: 'state', title: '是否显示',templet: '#statedetailed', sort: true}
            , {field: 'isValidate', title: '是否验证',templet: '#isValidatedetailed', sort: true}
            , {field: 'head', title: '表格属性',templet: '#headdetailed', sort: true}
            , {field: 'width', title: '占用宽度', sort: true}
            , {field: 'createTime', title: '创建时间', sort: true}
            , {title: '操作', toolbar: '#detailedtable',align: "center",width: 200}
        ]]
        , done: function (res, curr, count) {
            laypage.render({
                elem: 'detailedlaypage'
                ,first: '首页'
                ,last: '尾页'
                ,groups:5
                , count: count
                , curr: curnum
                , limit: limitcount
                , layout: ['prev', 'page', 'next', 'skip', 'count']
                , jump: function (obj, first) {
                    if (!first) {
                        curnum = obj.curr;
                        limitcount = obj.limit;
                        table.reload('detailed', { //表格的id
                            where: {
                                page: curnum,
                                limit:limitcount
                            }
                        })
                    }
                }
            })
        }
    });

    //监听工具条
    table.on('tool(detailedList)', function(obj){  //表格的lay-filter="userlists"
        var data = obj.data; //获得当前行所有数据
        var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的DOM对象
        // JSON.stringify(data)
        JSON.stringify(data)
        if(obj.event === 'update'){
            updatedetailed(data)
        }else if(obj.event === 'del'){
            del(data,obj)
        }
    });

    function  updatedetailed(data){
        var clocess="1";
        var index = layer.open({
            title : "修改",
            type: 2,
            content:localhostPaht + projectName+'/rest/getRoute?type=system&url=attribute_update',
            //是否显示右上角关闭图标，默认为1，显示
            area: ['90%', '91%'],
            maxmin: true,
            //是否显示右上角关闭图标，默认为1，显示
            anim:4,
            shade:0.6,
            skin: 'layui-layer-molv',
            resize:true,
            success: function(layero, index){  //当你需要在层创建完毕时即执行一些语句，可以通过该回调 想相当于吧值转到子界面
                // var body = layer.getChildFrame('body',index);//建立父子联系  //当你试图在当前页获取iframe页的DOM元素时，你可以用此方法。
                // body.find("#id").val(data.id);
                var iframe = window['layui-layer-iframe'+index];
                //调用子页面的全局函数
                iframe.child(data.id)
            },cancel: function(index, layero) {
                layer.close(index)
                clocess="2"
                return false;
            },
            end: function () {
                if(clocess=="2"){

                }else {
                    table.reload('detailed')
                }
                return false;
            }
        });

        // $('.layui-layer-setwin .layui-layer-max').css("display","none")
        // $('.layui-layer-setwin .layui-layer-min').css("display","none")
    }

    table.render({
        elem: '#maintain'
        , url: localhostPaht + projectName + "/rest/system/getMongoSearchStructure?key=3"
        , height: 'full-188'
        , page: false
        , limit: limitcount
        , title:"维护信息列表"
        , text: {
            none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
        }
        , toolbar: '#maintainDemo'
        , defaultToolbar: ['filter', 'print']
        // ,skin: 'line' //表格风格
        , cols: [[
            // {type: 'checkbox'}
            {field: 'oderNumber', title: 'ID', width: 70, sort: true,fixed:'left'}
            , {field: 'displayName', title: '属性名称', sort: true}
            , {field: 'name', title: '属性代码', sort: true}
            , {field: 'type', title: '属性类型', sort: true}
            , {field: 'dataType', title: '数据类型', sort: true}
            , {field: 'state', title: '是否显示',templet: '#statemaintain', sort: true}
            , {field: 'isValidate', title: '是否验证',templet: '#isValidatemaintain', sort: true}
            , {field: 'head', title: '表格属性',templet: '#headmaintain', sort: true}
            , {field: 'width', title: '占用宽度', sort: true}
            , {field: 'createTime', title: '创建时间', sort: true}
            , {title: '操作', toolbar: '#maintaintable',align: "center",width: 200}
        ]]
        , done: function (res, curr, count) {
            laypage.render({
                elem: 'maintainlaypage'
                ,first: '首页'
                ,last: '尾页'
                ,groups:5
                , count: count
                , curr: curnum
                , limit: limitcount
                , layout: ['prev', 'page', 'next', 'skip', 'count']
                , jump: function (obj, first) {
                    if (!first) {
                        curnum = obj.curr;
                        limitcount = obj.limit;
                        table.reload('maintain', { //表格的id
                            where: {
                                page: curnum,
                                limit:limitcount
                            }
                        })

                    }
                }
            })
        }

    });

    //监听工具条
    table.on('tool(maintainList)', function(obj){  //表格的lay-filter="userlists"
        var data = obj.data; //获得当前行所有数据
        var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的DOM对象
        // JSON.stringify(data)
        if(obj.event === 'update'){
            updatemaintain(data)
        }else if(obj.event === 'del'){
            del(data,obj)
        }
    });

    function  updatemaintain(data){
        var clocess="1";
        var index = layer.open({
            title : "修改",
            type: 2,
            content: localhostPaht + projectName+'/rest/getRoute?type=system&url=attribute_update',
            //是否显示右上角关闭图标，默认为1，显示
            area: ['90%', '91%'],
            maxmin: true,
            //是否显示右上角关闭图标，默认为1，显示
            anim:4,
            shade:0.6,
            skin: 'layui-layer-molv',
            resize:true,
            success: function(layero, index){  //当你需要在层创建完毕时即执行一些语句，可以通过该回调 想相当于吧值转到子界面
                // var body = layer.getChildFrame('body',index);//建立父子联系  //当你试图在当前页获取iframe页的DOM元素时，你可以用此方法。
                // body.find("#id").val(data.id);
                var iframe = window['layui-layer-iframe'+index];
                //调用子页面的全局函数
                iframe.child(data.id)
            },cancel: function(index, layero) {
                layer.close(index)
                clocess="2"
                return false;
            },
            end: function () {
                if(clocess=="2"){

                }else {
                    table.reload('maintain')
                }
                return false;
            }
        });

        // $('.layui-layer-setwin .layui-layer-max').css("display","none")
        // $('.layui-layer-setwin .layui-layer-min').css("display","none")

    }

    table.render({
        elem: '#extend'
        , url: localhostPaht + projectName + "/rest/system/getMongoSearchStructure?key=5"
        , height: 'full-188'
        , page: false
        , limit: limitcount
        , title:"扩展信息列表"
        , text: {
            none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
        }
        , toolbar: '#extendDemo'
        , defaultToolbar: ['filter','print']
        // ,skin: 'line' //表格风格
        , cols: [[
            {field: 'oderNumber', title: 'ID', width: 70, sort: true,fixed:'left'}
            , {field: 'displayName', title: '属性名称', sort: true}
            , {field: 'name', title: '属性代码', sort: true}
            , {field: 'type', title: '属性类型', sort: true}
            , {field: 'dataType', title: '数据类型', sort: true}
            , {field: 'state', title: '是否显示',templet: '#stateextend', sort: true}
            , {field: 'isValidate', title: '是否验证',templet: '#isValidateextend', sort: true}
            , {field: 'head', title: '表格属性',templet: '#headextend', sort: true}
            , {field: 'width', title: '占用宽度', sort: true}
            , {field: 'createTime', title: '创建时间', sort: true}
            , {title: '操作', toolbar: '#extendtable',align: "center",width: 200}
        ]]
        , done: function (res, curr, count) {
            laypage.render({
                elem: 'extendlaypage'
                ,first: '首页'
                ,last: '尾页'
                ,groups:5
                , count: count
                , curr: curnum
                , limit: limitcount
                , layout: ['prev', 'page', 'next', 'skip', 'count']
                , jump: function (obj, first) {
                    if (!first) {
                        curnum = obj.curr;
                        limitcount = obj.limit;
                        table.reload('extend', { //表格的id
                            where: {
                                page: curnum,
                                limit:limitcount
                            }
                        })

                    }
                }
            })
        }

    });

    //监听工具条
    table.on('tool(extendList)', function(obj){  //表格的lay-filter="userlists"
        var data = obj.data; //获得当前行所有数据
        var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的DOM对象
        // JSON.stringify(data)
        if(obj.event === 'update'){
            updateextend(data)
        }else if(obj.event === 'del'){
            del(data,obj)
        }
    });

    function  updateextend(data){
        var clocess="1";
        var index = layer.open({
            title : "修改",
            type: 2,
            content: localhostPaht + projectName+'/rest/getRoute?type=system&url=attribute_update',
            //是否显示右上角关闭图标，默认为1，显示
            area: ['90%', '91%'],
            maxmin: true,
            //是否显示右上角关闭图标，默认为1，显示
            anim:4,
            shade:0.6,
            skin: 'layui-layer-molv',
            resize:true,
            success: function(layero, index){  //当你需要在层创建完毕时即执行一些语句，可以通过该回调 想相当于吧值转到子界面
                // var body = layer.getChildFrame('body',index);//建立父子联系  //当你试图在当前页获取iframe页的DOM元素时，你可以用此方法。
                // body.find("#id").val(data.id);
                var iframe = window['layui-layer-iframe'+index];
                //调用子页面的全局函数
                iframe.child(data.id)
            },cancel: function(index, layero) {
                layer.close(index)
                clocess="2"
                return false;
            },
            end: function () {
                if(clocess=="2"){

                }else {
                    table.reload('extend')
                }
                return false;
            }
        });
        // $('.layui-layer-setwin .layui-layer-max').css("display","none")
        // $('.layui-layer-setwin .layui-layer-min').css("display","none")
        // setTimeout(function(){
        //     layui.layer.tips('点击此处返回扩展信息列表', '.layui-layer-setwin .layui-layer-close', {
        //         tips: 3
        //     });
        // },500)
        // layer.full(index);
        // // layer.restore(index)
        // window.sessionStorage.setItem("index",index);
        // //改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
        // $(window).on("resize",function(){
        //     layer.full(window.sessionStorage.getItem("index"));
        // })
    }

    function del(data,obj){
        layer.confirm('确定删除此数据', {icon:3, title:'提示信息'},function(index){
            var index = layer.msg('删除中，请稍候',{icon: 16,time:false,shade:0.6});
            setTimeout(function() {
                //向服务端发送删除指令
                $.ajax({
                    type: "post",
                    url: localhostPaht + projectName + "/rest/system/deleteAttributeById",
                    data: "id=" + data.id,
                    dataType: "json",
                    async: false,
                    success: function (msg) {
                        layer.close(index);
                        if(msg==true){
                            layer.msg('成功删除');
                            obj.del();
                        }else {
                            layer.msg();
                        }
                    }
                })
            },2000);
        });
    }


    exports('attribute', {})
})